/*
https://www.luogu.com.cn/problem/B3627
任务模型：找到最后一个绿糖果的位置也就是找到最后一个数字， 使这个数字满足某种要求。
初始化：左区间𝑙是可能的答案最小值，右区间𝑟是最大值。
开始循环：
•𝑚𝑖𝑑=𝑙+𝑟2 尝试中间那个糖果是否符合要求。
•如果符合要求，记录答案𝑎𝑛𝑠=max⁡(𝑎𝑛𝑠,𝑚𝑖𝑑)同时处理右区间，𝑙=𝑚𝑖𝑑+1。
•如果不符合要求，不记录答案。处理左区间，𝑟=𝑚𝑖𝑑−1。
*/
#include<bits/stdc++.h>
using namespace std;
long long n;
int ans = 0;
int check(int x) { // 判断是不是符合要求的
    // 如果x的立方小于等于n，说明符合要求
    // 注意强制类型转换
    return (long long)x * x * x <= n;
}
int main() {
    cin >> n;
    int l = 1, r = 100000, mid;
    while(l <= r) {
        mid = (l + r) / 2;
        if(check(mid)) { // 拆开的是绿色，符合要求
            ans = mid; //记录答案
            l = mid + 1; //继续找右边
        } else {//拆开的是红色，不符合要求
            r = mid - 1; //继续找左边
        }
    }
    cout << ans;
}
/*
g++ binary_search/bin_4.cpp && echo 100000 | ./a.out
*/